public class JumpGame {  
    public int jump(int[] nums) {  
        int jumps = 0; // 跳跃次数  
        int currentEnd = 0; // 当前跳跃的结束位置  
        int farthest = 0; // 当前能到达的最远位置  
        
        for (int i = 0; i < nums.length - 1; i++) {  
            // 更新当前能到达的最远位置  
            farthest = Math.max(farthest, i + nums[i]);  
            
            // 如果到达了当前跳跃的结束位置  
            if (i == currentEnd) {  
                jumps++; // 增加跳跃次数  
                currentEnd = farthest; // 更新当前跳跃的结束位置  
                
                // 如果已经可以到达最后一个位置，直接返回  
                if (currentEnd >= nums.length - 1) {  
                    break;  
                }  
            }  
        }  
        
        return jumps;  
    }  

    public static void main(String[] args) {  
        JumpGame jumpGame = new JumpGame();  
        int[] nums = {2,3,1,2,4,2,3}; // 示例输入
        System.out.println("最小跳跃次数: " + jumpGame.jump(nums)); // 输出结果  
    }  
}